# You can copy and paste this template into a new `.gitlab-ci.yml` file.
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
#
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Rust.gitlab-ci.yml

# Official language image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/rust/tags/
image: "rust:latest"

# Optional: Pick zero or more services to be used on all builds.
# Only needed when using a docker container to run your tests in.
# Check out: https://docs.gitlab.com/ee/ci/services/index.html
# services:
#   - mysql:latest
#   - redis:latest
#   - postgres:latest

# Optional: Install a C compiler, cmake and git into the container.
# You will often need this when you (or any of your dependencies) depends on C code.
# before_script:
#   - apt-get update -yqq
#   - apt-get install -yqq --no-install-recommends build-essential

# Use cargo to test the project
test:cargo:
  script:
    - rustc --version && cargo --version  # Print version info for debugging
    - cargo test --workspace --verbose

# Optional: Use a third party library to generate gitlab junit reports
# test:junit-report:
#   script:
#     Should be specified in Cargo.toml
#     - cargo install junitify
#     - cargo test -- --format=json -Z unstable-options --report-time | junitify --out $CI_PROJECT_DIR/tests/
#   artifacts:
#     when: always
#     reports:
#       junit: $CI_PROJECT_DIR/tests/*.xml

deploy:
  stage: deploy
  script: echo "Define your deployment script!"
  environment: production
